home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / util1 / yk211src.lha / Yak_2.11_Src / WBStartup / Clickdrive.c < prev    next >
C/C++ Source or Header  |  1995-10-18  |  1KB  |  54 lines

  1. #include <exec/types.h>
  2. #include <devices/trackdisk.h>
  3. #include <clib/alib_protos.h>
  4. #include <proto/exec.h>
  5.  
  6. #include "ClickDrive.h"
  7.  
  8.  
  9. /*
  10.  * Set drive click off if toggle is TRUE
  11.  * Set drive click on otherwise
  12.  *
  13.  */
  14. __regargs void 
  15. SetClickDrive (BOOL toggle)
  16. {
  17.    struct IOExtTD *td;
  18.    struct MsgPort *po;
  19.    struct TDU_PublicUnit *tpu;
  20.    long unit;
  21.  
  22.    if (po = CreatePort (NULL, 0))
  23.    {
  24.       for (unit = 0; unit < 4; unit++)
  25.       {
  26.           if (td = (struct IOExtTD *) CreateExtIO (po, sizeof (struct IOExtTD)))
  27.           {
  28.               if (!(OpenDevice ("trackdisk.device", unit, (struct IORequest *) td, 0L)))
  29.               {
  30.                   tpu = (struct TDU_PublicUnit *) td->iotd_Req.io_Unit;
  31.                   if (toggle==TRUE)     
  32.                   {   
  33.                       /* Stop clicking ! */
  34.                       tpu->tdu_PubFlags |= TDPF_NOCLICK;
  35.                   }
  36.                   else
  37.                   {
  38.                       /* Keep on clicking ! */
  39.                       tpu->tdu_PubFlags &= ~TDPF_NOCLICK;
  40.                   }
  41.                   CloseDevice ((struct IORequest *) td);
  42.                   DeleteExtIO ((struct IORequest *) td);
  43.               }
  44.           }
  45.       }
  46.       DeletePort (po);
  47.    }
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54.